package com.mingserve.raw.service;

import com.mingserve.raw.domain.*;

import java.util.List;

/**
 * 测点管理Service接口
 *
 * @author lvwshuai
 * @date 2024-02-02
 */
public interface IPointService
{
    /**
     * 批量新增或更新测点
     *
     * @param list 测点列表
     * @return 结果
     */
    Boolean batchPoint(List<Point> list);

    /**
     * 查询测点列表
     *
     * @return 结果
     */
    List<Point> queryList();

    /**
     * 查询设备下测点列表
     *
     * @return 结果
     */
    List<Point> queryByEquipment(Equipment equipment);

    /**
     * 按编码查测点详情
     *
     * @param pointCode
     * @return
     */
    Point getPointByCode(String pointCode);

    /**
     * 修改测点信息
     *
     * @param point
     * @return
     */
    int updatePoint(Point point);

    /**
     * 批量新增或更新测点配置
     *
     * @param list 测点配置
     * @return 结果
     */
    Boolean batchPointConfig(List<PointConfig> list);
    /**
     * 查询测点配置
     *
     * @return 结果
     */
    List<PointConfig> queryConfigList();

    /**
     * 批量新增或更新测点诊断参数
     *
     * @param list 测点配置
     * @return 结果
     */
    Boolean batchPointFault(List<PointFault> list);

    /**
     * 查询测点诊断参数
     *
     * @return 结果
     */
    List<PointFault> queryFaultList();

    /**
     * 批量新增或更新测点轴承信息
     *
     * @param list 测点配置
     * @return 结果
     */
    Boolean batchPointBearing(List<PointBearing> list);

    /**
     * 查询测点轴承信息
     *
     * @return 结果
     */
    List<PointBearing> queryBearingList();

    /**
     * 写入测点绑定IoT
     *
     * @param point
     * @return
     */
    int insertPointDevice(Point point);

    /**
     * 查询测点故障配置
     *
     * @param pointCode
     * @return
     */
    PointFault getPointFaultByCode(String pointCode);
}
